fix(workbench): persist Pro conversation titles - #1273
Conversation
d63749d to
d309162
Compare
wyuc
left a comment
There was a problem hiding this comment.
Three correctness races remain in title reconciliation. They can lose a newer rename, admit stale metadata after navigation, or leave open clients showing an obsolete title. Please address these interleavings and add deterministic regression coverage before merging.
f34e51d to
7a97f1b
Compare
|
Thanks for the careful review! I’ve addressed all three threads and added regression coverage for the relevant request ordering, navigation, snapshot, and cross-tab scenarios. |
7a97f1b to
d02f9e0
Compare
wyuc
left a comment
There was a problem hiding this comment.
One title-reconciliation race remains: a snapshot can start after the optimistic decision but still read before its PATCH commits. Please keep unresolved writes authoritative until their settlement is known and add the corresponding ordering test.
|
Addressed — write settlement is tracked separately from the optimistic decision now, so a snapshot that started before the PATCH resolved can no longer fence it, and the ordering tests cover both directions. Also in this range: a title event hidden by an unconfirmed mutation schedules its own reconciliation instead of waiting for the periodic fetch, a post-settlement snapshot that omits the session retires its mutation, and the rename queue survives a shell remount. |
wyuc
left a comment
There was a problem hiding this comment.
The reported title-reconciliation races are addressed with explicit write-settlement tracking and deterministic ordering coverage. CI is green.
Summary
Persist manual Pro conversation titles end to end so a rename survives reloads and cannot be rolled back by later owner-session status updates.
Related Issues
Fixes #1263
Changes
Type of Change
Verification
Steps to reproduce / test
What you personally verified
Race Startwas captured, the title was changed toRace New; releasing the old response left the rail, attached header, and database onRace New. The same check passed for an explicit clear, preserving the prompt fallback instead of restoring the stale title.Evidence
pnpm check && pnpm lint && npx tsc --noEmit)Checklist